<!-- Kommentare -->
<!DOCTYPE html> <head> (link, meta, title) <link rel=“stylesheet“ href=“style.css“> verknüpft eine CSS-Datei <body> <h1> - <h6> <p> <div> <main> <footer> <section> <span> |
Der meta Tag: <meta name=“keywords“ content=“keyword1, keyword2, etc.“> <meat name=“description“ content=“The shit - viele geile Sachen“> <meta name=“author“ content=“Hansdampf“> <meta http-equiv=“refresh“ content=“5“> <meta name=“robots“ content=“index, follow/unfollow“> <meta name=“revisit-after“ content=“ 5 month/days“> |
Anker: <a href="Adresse" target=“_blank“>Link Text</a> Anker extern / Web, blank öffnet in neuem Tab <a href="#ankerpunkt">Link Text</a> Anker auf eigener Seite |
Listen: <ul> <ol> <li> |
Forms:
<form action="server" target“_blank“> <button type="submit">Button <kbd></kbd> text als keyboard input definieren |
<input type=“radio“>text (text oder <label for =“id“>id</label>) mögliche Attribute: type, name, value, disabled, readonly, size, maxlength, min/max, autocomplete, (on/off), autofocus(on/off), placeholder=“text“, type kann sein: radio / checkbox / color / week / date / month / time / button / email / range / search / url /file / multiple(on/off), required(on/off) |
Videos: <video width=“640“ controls=“on“ autoplay=“on“> <source src=“Pfad und Name“ type=“video/mp4“> </video> |
Audio: <audio autoplay=“on/off“ controls=“on/off“> <source src=“dateiname.mp3“type=“audio/mp3“> </audio> |
Untertitel: <track src=“untertitel_en.vtt“ kind=“subtitles“ srclang=“en“ label=“Englisch“> Mehrere Zeilen für mehrere Sprachen anlegen. |
SVG-Grafiken
<svg width=“200“ height=“200“> <circle cx=“50px“ cy=“50“ r=“40“ stroke=“red“ stroke-width=“6“ fill=“blue“/> </svg> |
Zeichnet einen Kreis, Rand rot, Innen blau gleiches mit „rect“ zeichnet Rechteck |
CSS Datei einbinden in HTML-head über link-Tag: <link rel=“stylesheet“ type=“text/css“ href=“style.css“> |
CSS Schreibweise: SELEKTOR {property: value; property: value;} |
!important größer inline größer ID = # größer Klasse = . größer Tag (in CSS gilt sonst das top-bottom Prinzip)
CSS Selektoren-Schreibweise:
e1.e2 {...} |
alle elemente e1 mit klasse e2 |
/* Kommentare */ auch mehrzeilig |
e1, e2 {...} |
alle elemente e1 und alle elemente e2 |
|
e1 e2 {...} |
alle elemente e2 innerhalb des ersten elements e1 |
|
e1 > e2 {...} |
alle elemente e2 mit eltern element e1 |
Farbschreibweisen: rgba(255, 99, 75, 0.5) oder hsla(9, 100%, 64%, 0.5) oder #ff6347 evtl. mit Angabe einer opacity: 0.5; |
e1 + e2 {...} |
das erste element e2 das sofort nach e1 element kommt |
|
e1 ~ e2 {...} |
jedes e2 welchem ein e1 vorausgeht |
Das body Element ist Element der untersten Ebene, aber :root verwendbar für globale CSS Variablen, auch für fallbacks
Hintergrund einstellen (bspw. body):
background-color: farbe; background-image: url(„dateiname/pfad,jpg“); background-repeat: no-repeat/repeat-x/repeat-y; background-position: center right; (und andere!) |
Kurzschreibweise background: alle 4 Hauptattribute hintereinander festgelegter Reihenfolge: color image repeat position
background: farbe url(„img.jpg“) no-repeat right top; |
background-attachement: fixed/scroll;
Box-Modell:
Das Box-Modell definiert die Position von html Elementen als Rechtecke mit den properties margin (-top, -right, -bottom, -left) (Außenabstand), outline (-style, -color, -width, offset), border (-color, -width, -style, -radius) (Rand) und padding (-top, -right, -bottom, -left) (Innenabstand), dann content. In dieser Reihenfolge von außen.
Kurzschreibweise
outline und border: outline/border:
width style color;
Es gibt block-Elemente und inline-Elemente. |
|
Blockelemente fangen immer eine neue Zeile an und verwenden den gesamten verfügbaren Platz links und rechts. |
Inlineelemente fangen keine neue Zeile an und nehmen nur soviel Platz wie benötigt |
Blockelemente sind: div, h1-h6, p,form, header, footer, section, |
Inlineelemente sind: span, a, img |
Diese Standard – Attribute lassen sich durch display: block; bzw. display: inline; verändern |
Die dritte Möglichkeit ist ein Element mit display: hidden; zu definieren. Dies zeigt die Seite an, als wäre das Element nicht da. Durch Änderung des Attributs auf display:block; bzw. display: inline; ändert sich das und das Element wird entsprechend angezeigt. Ähnlich ist visibility: hidden;. Doch hier wird die Seite normal angezeigt, das Element mit visibility: hidden; aber versteckt. Der Platz, den das Element aber brauchen würde wird reserviert, beeinflusst also das Layout!
Elementpositionierung:
position: |
static; relative; fixed; absolute; sticky; |
static ist default; relative verschiebt Element mit top/left/bottom/right um px; fixed hat feste Position im Fenster; absolute orientiert sich am Eltern-Element (bei body scrollt es ggf. weg) sticky ist wie fixed, nur in einer Richtung (Scrollrichtung ) bleibt es sichtbar |
display: |
none; inline; block; inline-block; |
verbirgt element komplett oder fügt es auf bestimmte Weise ein; |
float: |
left; right; none; |
lässt Element von Inhalt umfließen |
overflow: |
auto; |
passt element an höchsten Inhalt an |
clear: |
both; left; right; none; |
verschiebt Inhalt an Stelle im Element, an der kein anderes Element mehr ist in angegebener Richtung |
Bei Überlagerungen kann mit z-index:-1; bestimmt werden, welches Element im Vorder- bzw. Hintergrund ist. Der höhere Index ist weiter vorne. |
Text-Formattierung:
color: |
Farbangabe rgba / # / hsla |
text-indent: |
50px; Einzug erste Zeile |
text-align: |
canter; left; right; justify; |
letter-spacing: |
3px; auch negative Zahlen möglich |
text-decoration: |
none; line-through; overline; underline; |
line-height: |
0.8; Zeilenhöhe |
text-transform: |
uppercase; lowercase; capitalize; |
word-spacing: |
-5px; Wortabstand |
white-space: |
nowrap; kein Umbruch |
text-shadow:(2px 2px 5px red;) |
x-Versatz y-Versatz blur farbe |
direction: |
rtl; ltl; |
unicode-bidi: |
bidi-override; |
font-family: „Lucida Console“, Verdana, sans-serif; |
(erste preferiert, dann fallback, dann fallback-klasse, bei mehr Wörtern in Anführungszeichen) = font degrade |
||
font-style: |
normal; italic; oblique; |
font-size: |
10px; 0.5em; 10vw; (vw=viewport width in %) |
text-shadow: |
|
box-shadow: |
|
CSS
Icons: Font
Awesome, Bootstrap,
Google
Links:
a:link {...} |
a:visited {…} |
a:hover {…} |
a:active {…} |
text-decoration: none; um Veränderung des link-Aussehens zu unterbinden |
Cursor verändern:
cursor: auto; crosshair; pointer; text; wait; move; default; help; n/ne/nw/s/se/sw/w-resize; |
Verändert den Maus-Zeiger |
Listen
verändern:
list-style-type: none; circle; square; upper-roman; lower-roman; upper-alpha; lower-alpha; |
Verändert Aufzählungszeichen |
list-style-position: outside; inside; |
Verändert Position der Aufzählungszeichen |
list-style: square inside url(„beispiel.gif“); |
Kurzschreibweise |
Tabellen:
table, th, td {…}
table = ganze Tabelle th = table head (oberste Reihe) td = einzelne Felder tr= table rows
|
width: 100%; (Breite auf Elementbreite) |
border-bottom: 1px solid #ddd; (Bsp. Styling der Tabelle) |
|
height: 50px; (Höhe der Tabelle) |
tr:nth-child(even/odd) {background-color: #f2f2f2;} |
|
|
border: 1px solid black; (Randdefinitionen Stärke, Art, Farbe) |
tr:hover {background-color: #f2f2f2;} |
|
|
border-collapse: collapse; (kein Innenraster) |
<div style="overflow-x:auto;"> <table> ...table elements... </table> </div>
|
für responsive Tabelle, Container außen herum generieren, der overflow definiert hat |
|
text-align: center; |
|||
vertical-align: bottom; |
overflow: visible/hidden/scroll/auto; Regelt wie Inhalt behandelt wird der zu groß ist für sein Element. Es gibt overflow-x und overflow-y für horizontale bzw. vertikale Unterscheidung.
float: left/right; Ein Element links bzw. rechts am Rand des Elternelements positionieren. Andere Elemente können es umfließen.
clear: left/right/both/none/inherit; Mit clear kann man Elemente, die floaten an der entsprechenden Seite verhindern.
Pseudo-Klassen (:) und Pseudo Elemente (::)
p:first-child {color:blue;} Wählt alle p aus, mit Eigenschaft „first-child“ und setzt deren Textfarbe auf blau. (Pseudo-Klasse) auch :hover :visited :link :active :enabled und andere
p::first-letter {color: #ff0000;} Wählt den ersten Buchstaben in einem p Element und verändert die Farbe. (Pseudo-Element) auch: ::after ::before ::first-line ::selection Übersicht
Wie man eine Navigation styled: W3schools CSS Navbar Demo (danach weitere Demos: Dropdowns, Image Gallery,
Attribut-Selektor: a[attribut=“value“] { background-color: green; } Links mit dem Attribut in eckiger Klammer und dem Wert value bekommen grünen Hintergrund. Genaue Erklärung
= muss exakte value Angabe sein |
~= ein ganzes Wort als Teil |
|= ein ganzes Wort am Anfang |
^= Anfang, aber kein ganzes Wort |
$= endet mit |
*= alles mit der angegebenen value iwo als Teil |
input[type=text]:focus { background-color: lightblue; } wählt alle Input Textfelder und färbt den Hintergrund hellblau wenn darauf geklickt wird.
eigene
Schriftarten verwenden: Herunterladen und im Ordner der Seite
speichern, dann:
@font-face { font-family:
ubuntu;
src: url(Ubuntu-R.ttf);
}, dann im entspr. Element aufrufen mit
font-family: ubuntu;
Bilder mit Effekten belegen (Hintergrund):
-webkit-filter: blur(100px); auch: brightness, grayscale, opacity, sepia, contrast, drop-shadow(50px(x-Versatz) 10px(y-Versatz) 10px(blur) #BBB(Farbe)); |
2D-Transformationen
transform: scale(2, 1.5); (skalieren) translate(10px, 200px); (verschieben) rotate(42deg); (drehen) skew(10deg, 5deg); (scheren)
3D-Transformationen
transform: rotateZ(90deg); zusätzlich zu den 2D-Transformationen eine weitere Achse angeben
Responsive media design (media query)
@media screen and (max-width: 500px) es folgt separates CSS für angegebene Geräteigenschaften. Üblich ist zuerst für kleine Geräre CSS zu schreiben, dann mit media querys für größere Screens CSS zu definieren.
CSS Variablen mit "property: var(--varname, fallback);"
JS in HTML Code am Ende des body tags schreiben mit: <script> code </script> |
JS-Funktionen in Datei auslagern: Datei erstellen, bspw. „scripts.js“ Im head-Bereich der html Datei verlinken mit: <script src=“scripts.js></script> |
// Einzeilen-Kommentar /*... */ mehrzeiliges Kommentar
Variablendefinitionen und Rechnen mit Variablen:
var einName = 5; einfache Variablendefinition, case-sensitive uninitialisierte Variablen haben Wert: undefined |
var einName = „String“; |
Maskieren mit backslash um das jew. folgende Zeichen auszusparen aus Anführungszeichen, also \‘ ,\“, \\ Außerdem ist \n neue Zeile, \t win tab, außerdem: \b, \f, \r
Man kann innerhalb eines Strings mit \ eine neue Zeile beginnen! Man kann aber keine Code-Zeile mit \ unterbrechen! |
|
var a=4; var b=3; Bei a=a+b; ist a gleich 7 (alle Grundrechenarten (Standardoperatoren) möglich) |
string Adition: var a=“hal“; und a += „lo“; dann ist a gleich hallo |
||
5 % 2 = 1; Der Modolo % meint den Rest der nicht geteilt werden kann, nicht die Nach-Kommastellen! |
Länge einer Variablen a mit a.length String in array umwandeln mit .split( ); |
zero based indexing beachten: Zählen startet mit 0! Wenn a = „servus“; dann ist a[1]; ist e, nicht s! also ist der letzte Buchstabe einer Variablen immer ihre Länge – 1 also: var lastLetter = Variable[Variable.length – 1]; |
|
i++; ist gleich wie i = i + 1; j =++i; i wird zuerst um eins erhöht, dann j zugewiesen j = i++; i wird j zugewiesen und danach um 1 erhöht! |
|
Variablen, die mit var innerhalb einer Funktion definiert werden sind lokale Variablen und nur innerhalb dieser Funktion gültig!
Ausgaben in JS: mit document.write(„Hallo“); oder in einem alert mit: window.alert(„Alarm“); oder inneres HTML eines Elements ersetzen mit .innerhtml=“Hallo“; Bsp: |
|
var car = „Fiat“; document.getElementById(„demo“).innerHTML = car; |
bestimmt eine Variable car als string „Fiat“. Ausgabe im Element demo (bspw. p) ist „Fiat“. |
Ein Objekt generieren: var car = {type:“Fiat“, model:“500“, color:“white“} |
document.getElementById(„demo“).innerHTML = „The car type is “ + car.type; oder car[„type“]; Ausgabe in demo ist: The car type is Fiat |
booleans sind Wahrheitswerte (für Verzweigungen bspw.) var b = true; oder false; Prüfungen in variablen speichern: var b = 42 != 422; (ist true weil ungleich) var x = (42 == 42) ? 42: 1337; Wenn 42 gleich 42 true ist, schreibe 42 in var x, wenn false schreibe 1337 in x. |
If-Abfragen:
if(a < 1337) {window.alert(„huhu“)} |
geschwungene Klammer wird nur ausgeführt wenn Bedingung in Klammer true |
else { … } |
Klammer hinter else wird ausgeführt wenn Bedingung bei if „false“ ist. (Mehrere if Abfragen möglich mit else if). |
Wird die Klammer hinter if wahr, springt JS an das Ende der Funktion über alle anderen if Abfragen und else unbeachtet drüber. |
|
if(a<b || a<c) { .. } |
meint „oder“, geschweifte Klammer wird ausgeführt wenn a kleiner b ist ODER a kleiner c ist |
if(a==b && a<c) { .. } |
meint „und“, geschweifte Klammer wird ausgeführt wenn a gleich b ist UND a kleiner c ist |
switch case statements:
switch(new Date().getDay()) { case 0: window.alert(„Heute ist Sonntag“) … }; break; case1: (...) |
newDate().getDay() erzeugt ein Array aus den Wochentagen, wobei Sonntag an der ersten Stelle steht, also auf 0. Wenn tatsächlich Sonntag ist, gibt der switch den Alert aus „Heute ist Sonntag“ und bricht durch break; seine Suche ab. Es geht am Ende nach } weiter im Code. default kann am Ende stehen falls kein Wert gefunden wird. |
Funktionen: Eine Funktion ist ein Code-Block, der eine bestimmte Aufgabe ausführt. Funktionen werden aufgerufen mit ihrem Namen und (), evtl. mit Parametern/Variablen in der Klammer, die der Funktion übergeben werden und mit denen sie ausgeführt wird. Ein Aufruf ganz ohne Klammer ruft die Definition der Funktion auf, führt sie aber nicht aus. Es gibt vordefinierte Funktionen (bspw. window.alert()) in JS, man kann aber auch selbst eine schreiben:
function reusableFunction() { console.log("Hi World"); } reusableFunction(); |
„Hi World“ wird in der Console ausgegeben, die letzte Zeile ruft die Funktion auf (invoke oder call genannt). Dieser call kann beliebig oft benutzt werden im Programm |
function func1(a, b) { console.log(a +b); } func1(5, 2); |
gibt 7 in der console aus. |
function timesFive(g) { return g * 5; } ... var answer = timesFive(5); ... |
diese Funktion nimmt einen Wert g an, multipliziert ihn mit 5 und gibt den Wert mit return zurück. Die Letzte Zeile definiert eine Variable „answer“, die das Ergebnis der Funktion mit dem Wert in der Klammer (argument) annimmt, also ist answer 25. Diese Zeile kann überall im Code stehen. |
function nextInLine(arr, item) { arr.push(item); var item = arr.shift(); return item; } |
Diese Funktion fügt item zu array hinten hinzu, schneidet dann den ersten Wert des arrays arr ab und gibt ihn als item zurück. |
function myFunction() { document.getElementById("demo").innerHTML = "Hello World!"; } |
Die Funktion generiert einen String in demo. |
||
<button onclick="myFunction()">Try it</button> <p id="demo"></p> |
Der Button führt bei einem Klick die Funktion aus. Es wird „Hello World“ ausgegeben. |
||
rekursive Funtionen: Eine Funktion wird in ihr selbst wieder aufgerufen. Dies kann komplizierte Berechnungen auf einfache Teile herunterbrechen. Bsp: Berechnung der Fakultät 5! = 5*4*3*2 function fakul(n) { if (n <= 2) { return n; } return n*fakul(n-1); } |
was passiert? der Kniff ist die untere Zeile, nämlich dass mit return ein Wert zurück gegeben wird, der berechnet wird mit n mal wieder die Funktion nur mit n-1. Um das zu berechnen führt die Funktion nun wieder die Funktion aus, doch in ihr ist ja wieder die Funtkion mit n-1 enthalten (was INSGESAMT jetzt bereits n-2 ist). Das passiert solange bis n<= 2 ist, denn dafür ist die if-Abfrage in der Funktion drin (das ist die notwendige Halt-Bedingung, sonst würde die Berechnung immer weiter laufen). Wenn n<=2 ist wird n zurückgegeben und somit die Funktion NICHT NOCH EINMAL aufgerufen,da der Rest übersprungen wird. Jetzt können alle Schritte „rückwirkend“ berechnet werden. |
<button onclick="document.getElementById('demo').innerHTML=Date()">The time is?</button> <button onclick="this.innerHTML=Date()">The time is?</button> |
Erster button gibt das Datum in einem anderen Element aus. Zweiter button gibt das Datum in diesem Element aus. |
Es kann auch an der Stelle eine Funktion aufgrufen werden: <button onclick=“funktionsname()“>
Mit .indexOf() kann die Position eines bestimmten Textteils in einem String bestimmt werden, mit .match() wird nach Übereinstimmungen gesucht:
var str = "Please locate where 'locate' occurs!"; var pos = str.indexOf("locate"); document.getElementById("demo").innerHTML = pos; |
gibt 7 in Element „demo“ aus |
var str = "The rain in SPAIN stays mainly in the plain"; var res = str.match(/ain/g); document.getElementById("demo").innerHTML = res; |
gibt aus: ain,ain,ain (nicht 4 mal wegen case sensitive!) |
var str = document.getElementById("demo").innerHTML; var txt = str.replace("Microsoft","W3Schools"); document.getElementById("demo").innerHTML = txt; |
r.replace tauscht Teile aus |
var text = document.getElementById("demo").innerHTML; document.getElementById("demo").innerHTML = text.toUpperCase(); |
.toUpperCase stellt alles in Großbuchstaben dar, analog .toLowerCase |
var str = "a,b,c,d,e,f"; var arr = str.split(","); document.getElementById("demo").innerHTML = arr[0]; |
wandelt einen string in ein array um, Trenner ist das Komma Eine Funktion mit diesem Inhalt gibt „a“ aus. |
x.toPrecision(2); rundet Zahl x auf 2 Nach-Kommastellen
Variablen in Zahlen umwandeln (falls möglich) mit Number(variable); bsp.:Number(true); ist 1 / Number(„10“); ist 10 / Number(„ 10 „); ist 10, aber: Number(„10,33“) oder Number(„John“); ist NaN;
Math:
Math.PI gibt den Wert von PI aus (3,14159...) |
Math.pow(a,b) a hoch b → Math.pow(8,2); ist 64. |
Math.floor(x) rundet x ab, runter auf den nächstnidrigeren Integer |
Math.sin(x) berechnet den Sinus. Formel ist (Winkel in Grad) * PI / 180 |
Math.max() gibt den höchsten Wert in einer Liste an |
Math.abs(x) macht Wert positiv |
Math.sqrt(x) Wurzel von x |
Math.round runden auf nächsten Integer |
Math.ceil(x) rundet x auf den nächshöheren Integer |
Math.cos(x) berechnet cosinus. |
Math.min() gibt den kleinsten Wer in einer Liste an |
Math.random() gibt eine zufällige Zahl zwischen 0 und 1 aus |
Bsp: Umrechner von Grac Celsius in Fahrenheit
Eine zufällige Zahl (integer) von 0 bis 9 ausgeben: Math.floor(Math.random() * 10); von 0 bis 10: Math.floor(Math.random() * 11); von 1 bis 10: Math.floor(Math.random() * 10) + 1; von 0 bis 99: Math.floor(Math.random() * 100); von 1 bis 100: Math.floor(Math.random() * 100) + 1; |
einfacher Würfel 1 – 6 mit button: <button onclick="document.getElementById('demo').innerHTML = getRndInteger(1,6)">Click Me</button> <p id="demo"></p> <script> function getRndInteger(min, max) { return Math.floor(Math.random() * (max - min)) + min; } </script> |
Arrays:
var fruits = [„Banana“, „Orange“, „Apple“, „Mango“]; |
Schreibweise einer Definition einer Variablen, die ein Array beinhaltet |
document.getElementById("demo").innerHTML = fruits[0]; |
wählt aus dem Array das Element an der 1. Stelle aus (zero based indexing, s.o.): Banana |
fruits[0] = „Kiwi“; |
wechselt das erste Element des Arrays aus → Bannana raus, Kiwi rein (ersetzen) |
document.getElementById("demo").innerHTML = fuits.lenght; |
gibt die Länge des Arrays aus (hier 4) |
document.getElementById("demo").innerHTML = Array.isArray(fruits); |
gibt true zurück wenn fruits ein Array ist. |
document.getElementById("demo").innerHTML = fruits.join(" * "); |
fügt alle Elemente des Array zu einem string zusammen, Array bleibt erhalten |
document.getElementById("demo").innerHTML = fruits.toString(); |
gibt alle Elemente des Array als string aus, mit Komma getrennt, Array bleibt erhalten |
fruits[fruits.length] = "Lemon"; |
fügt das Element Lemon zum Array hinzu. |
fruits.splice(2, 0, "Lemon", "Kiwi"); var citrus = fruits.slice(1,3); |
fügt in das Array 2 neue Elemente Lemon und Kiwi ein. 0 Elemente werden entfernt schneidet Elemente aus dem Aray von 1 bis (aber nicht mit) 3 → Bsp. |
fruits.unshift("Lemon"); |
fürgt vorne Lemon ins Array hinzu, kein Element wird gelöscht |
fruits.shift(); |
löscht das erste Element in einem Array |
fruits.sort(); |
ordnet Array alphabetisch (Anfangsbuchstaben)→ .sort UND .reverse sortiert absteigend |
fruits.reverse(); |
dreht die Reihenfolge der Elemente eines Arrays um |
points.sort(function(a, b){return a - b}); |
sortiert Nummern aufsteigend: Funktion subtrahiert wie angegeben immer zwei Variablen miteinander, für alle im Array. Wenn das Ergebnis negativ ist, ist die Zahl zwangsläufig kleiner. So bekommt man die richtige Reihenfolge. Erklärung |
document.getElementById("demo").innerHTML = myArrayMin(points); |
findet das niedrigste Element im Array, auch mit myArrayMax entsprechend das höchste |
myArray.push(["dog", 3]); |
push fügt ein Element (hier wieder ein Array) in myArray als letztes Element ein pop entfernt das letzte Element in einem Array shift entfernt erstes Element eines Arrays unshift fügt ein neues Element am Anfang des Arrays ein |
Zwei Arrays zu einem zusammenfügen: var myGirls = ["Cecilie", "Lone"]; var myBoys = ["Emil", "Tobias", "Linus"]; var myChildren = myGirls.concat(myBoys); genauso mit mehreren Arrays: var myChildren = arr1.concat(arr2, arr3, arr4); |
|
Nested arrays: var myArray = [[„string“, 4], [„winter“, 5], 8]; myArray[2] = 8 |
for-Schleife
for (i=0; i < users.length; i++) { } |
Was passiert? Zuerst wird die Zählvariable i auf 0 gesetzt. Dann wird bestimmt wie oft die Schleife durchlaufen werden soll (hier solange i kleiner ist als die Länge des Array. Als letztes wird bestimmt wie gezählt wird, hier wird die Zählvariable bei jedem Durchlauf um 1 erhöht. |
for (i=users.length - 1; i <=0; i--) { } |
beginnt beim letzten Element und zählt rückwärts bis zur ersten Stelle |
for (i in users) { } |
gleich wie die oberste for–Schleife, umdrehen geht dann über reverse(); |
|
|
while-Schleife: (while (Bedingung) { mache das }) while (i < 10) { window.alert(i); i++; } |
do while Schleife do { window.alert(i); i++; } while (i < 0); |
break und continue
Events:
In HTML werden in Tags sog. Events eingefügt. Danach sind sog. event handler Attribute erlaubt. Das ist dann Java Script Code:
<element event=“JavaScript“> Es gibt sehr viele Events. Das können Mouse-Events sein, Klick-Events, Keyboard-Events, UI-Events oder bspw das Laden der Seite oder eines Bildes etc. sein. Im Eventhandler setzt man ein on vor das Event und definiert dann in der Klammer mit JavaScript was passieren soll.
Document Object Model (DOM)
Das DOM ist der Standard für wie man HTML Elemente bekommt, verändert, hinzufügt oder löscht.
Eine Seite kann man sich wie ein Baumdiagramm vorstellen. Das Document ist alles, dann folgt die oberste Ebene mit dem <html> -Tag, dann teilt es sich in <head> und <body> Bereich, was die nächste Ebene darstellt, usw.
Alle Objekte auf einer Seite können mit JavaScript angesprochen und somit verändert werden: Text, Attribute, Style können geändert, auf Events reagiert oder auch neue Elemente generiert oder existierende gelöscht werden. Webseiten werden damit DYNAMISCH!
Bsp:
document.getElementbyId(„ID-Name“).innerHTML= „neuer Text“; |
verändert das Element mit der ID: ID-Name. Hier wurde das innere HTML, also der Text verändert zu „neuer Text“. |
var x = document.getElementsbyTagName(„p“); |
speichert alle Absätze p in der Variablen x. Immer als ARRAY gespeichert. |
window.alert(x[0].innerHTML); |
gibt den Inhalt des ersten Paragraphen in einem Alert-Fenster aus. |